/*
  该文件专门用于为 Count 生成action 对象
*/

import { INCREMENT, DECREMENT } from '../constant'

function increateIncrement(data) {
	return { type: INCREMENT, data }
}

function decreateIncrement(data) {
	return { type: DECREMENT, data }
}
/*
	以上的都是 同步 action
*/

/*
	所谓的异步action 就是值  action的的值为函数

		异步action并不是必须要使用到的  和vuex的异步action一样  都不是必须使用的
		
		当我们发请求的时候 如果我们不想在组件里面写那些代码 如（发请求，判断请求结果 等等） 就可以放在异步action里面写

*/

function increateIncrementAsync(data, time) {
	// 返回一个函数  就是异步action  因为异步的action也是store帮我们调用的 且是函数 会自动给我们传递一个dispatch 方法我们在异步里面调用同步
	return dispatch => {
		setTimeout(() => {
			dispatch(increateIncrement(data))
		}, time)
	}
}

export { increateIncrement, decreateIncrement, increateIncrementAsync }
